package study.ct.com.retrofitmodule.service;

import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import study.ct.com.retrofitmodule.bin.BookSearchResponse;

/**
 * Created by ct on 2017/9/26 0026.
 */

public interface BlueService {

    @GET("book/search")   //Query 参数过多时候 可以通过 Map 方式传递
    Call<BookSearchResponse> getSearchBooks(@Query("q") String name,
                                            @Query("tag") String tag,
                                            @Query("start") int start,
                                            @Query("content") int content);



  /*  @GET("book/search")
    Call<BookSearchResponse> getSearchBooks(@QueryMap Map<String, String> options);*/



    //@FormUrlEncoded将会自动将请求参数的类型调整为application/x-www-form-urlencoded，  FormUrlEncoded不能用于Get请求
    @FormUrlEncoded
    @POST("book/reviews")
    Call<String> addReviews(@Field("book") String bookId, @Field("title") String title, @Field("content") String content,
                            @Field("rating") String rating);


    //假如说有更多的请求参数，那么通过一个一个的参数传递就显得很麻烦而且容易出错，这个时候就可以用FieldMap
//    @FormUrlEncoded
//    @POST("book/reviews")
//    Call<String> addReviews(@FieldMap Map<String, String> fields);

}
